import 'dart:async';

import 'package:flutter/cupertino.dart';

// ARGB 字符串 #FFAB3344
Color? parseColor(String argbHexString) {
  Color? color;

// 检查字符串长度是否正确（应为9个字符，包括井号）
  if (argbHexString.length == 9) {
    // 提取Alpha和RGB分量
    String alpha = argbHexString.substring(1, 3); // 取前两个字符作为Alpha分量
    String red = argbHexString.substring(3, 5); // 接着的两个字符作为红色分量
    String green = argbHexString.substring(5, 7); // 然后的两个字符作为绿色分量
    String blue = argbHexString.substring(7, 9); // 最后的两个字符作为蓝色分量

    // 将十六进制字符串转换为整数
    int a = int.parse(alpha, radix: 16);
    int r = int.parse(red, radix: 16);
    int g = int.parse(green, radix: 16);
    int b = int.parse(blue, radix: 16);

    // 使用fromARGB方法构造Color对象
    color = Color.fromARGB(a, r, g, b);
  } else {
    print("提供的十六进制颜色字符串格式不正确。");
  }
  return color;
}


Function throttle(void Function() func, Duration delay) {
  Timer? timer;
  return () {
    if (timer?.isActive ?? false) return;
    timer = Timer(delay, func);
  };
}


Future<T> elapsedFuture<T>(
  Future<T> future, {
  String? prefix,
}) async {
  final Stopwatch stopwatch = Stopwatch()..start();
  final T result = await future;
  stopwatch.stop();
  return result;
}
